#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Filename: carga_BD.py

from database import Usuario, Empleado, Clasificacion, GrupoDeResolucion
from database import Estado
from datetime import datetime
from random import randrange

if __name__=="__main__":
    # Legajos
    legajos = []
    for num in range(0, 71):
        legajos.append(str(randrange(1, 100000)))
    # Nombres
    nombres = ['Cora', 'Inez', 'Peter', 'Patricia', 'Jorge', 'Marloes',
            'Judith','Pieter', 'Leonora','Anna Maria', 'Hans', 'Nathalie',
            'Michel', 'Irene', 'Charles', 'Anne', 'Jane', 'Stephanie',
            'Denise', 'Hugh', 'Inga', 'Tanya', 'Charles', 'Trulette', 'Kathlene',
            'Catherine', 'Jen', 'Tiffani', 'Cassandra', 'Stephanie','Gabrielle',
            'Neil', 'Lucia', 'Anne Marie', 'Theres', 'Jenna', 'Chelsea',
            'Elizabeth', 'Michael', 'Ame', 'Joshua', 'Jeremy', 'Andrea', 'Juan',
            'Martin', 'Pedro','Gonzalo', 'Antonio', 'Juan','Abel','Diego',
            'Eliana', 'Maria', 'Pablo', 'Ivan', 'Federico','Ramon', 'Gerardo',
            'Roberto', 'Flavia', 'Daniela', 'Karina','Eric', 'Adelina', 'Alicia',
            'Amara', 'Berta', 'Derek', 'Dustin', 'Edwin', 'Egmont']

    apellidos = ['Minderhoud', 'Schaap', 'le Poole', 'Simpson', 'Hefferan',
            'van Beveren','Blaauw', 'de Rijk','Hammer', 'Zomerdijk', 'de Kleer',
            'Rehaen', 'Thijsebaard', 'Tello', 'Castle', 'Farrell', 'Rice', 'Hanor',
            'Montgomery', 'Davies', 'Funck', 'Lichtenstein', 'Castle', 'Clayes',
            'Gusel', 'Lee, Riley', 'Mai', 'Heise','Hanor', 'Bridgeford', 'Kendricks',
            'Sanroman', 'Levine', 'James', 'Siman','Jones','Yang-Hellewell',
            'Muehlhausen','Parsley', 'Hartsough','Woodall', 'Hales', 'Aguirre',
            'Gimenez', 'Gomez', 'Avellaneda', 'Avella', 'Vella', 'Lila','Aopito',
            'Gallardo', 'Sundberg', 'Perez', 'Bonoravo', 'Giardelli','Giraudo',
            'Descalzi', 'Nobile', 'Patrignami', 'Durante', 'Cimadevilla',
            'Austin', 'Saiegg', 'Williams', 'Garraza', 'Encina', 'Fernandez',
            'Rodal', 'Pallero', 'Aravena', 'Pinola']

    e_mail = ['jgimenez@gmail.com', 'mgomez@gmail.com',
            'pavellaneda@gmail.com', 'gavella@gmail.com', 'mvella@gmail.com',
            'alila@gmail.com', 'jmayo@gmail.com', 'aaopito@gmail.com',
            'demege21@gmail.com', 'esundber@frsf.utn.edu.ar',
            'aggus@live.com.ar', 'agos_c7@hotmail.com', 'eli_2088@hotmail.com',
            'elocuatrin@hotmail.com', 'ivanzonis@hotmail.com']
    # Comenzamos con los empleados
    empleados = []
    for x in range(0,71):
        empleados.append(Empleado(
                nombre=nombres[x],
                apellido=apellidos[x],
                legajo=legajos[x],
                e_mail=e_mail[randrange(1, len(e_mail))],
                usuario=None))
    # Comenzamos con los grupos de resolucion
    # grupo = [fecha_creacion, descripcion, nombre]
    # la fecha se la damos cuando llamamos al constructor
    grupos = {1: ['Realiza ABM de ticket','MesaDeAyuda'],
            2: ['Solucionan problemas de instalacion', 'Unidades de Soporte'],
            3: ['Resuelven problemas de hardware', 'Servicio Tecnico'],
            4: ['Tareas sobre el motor de la BD', 'DBA'],
            5: ['Admnistra estos equipos', 'Administrador SUSE Linux'],
            6: ['Administrar el correo electronico, conexion a internet',
                'Administrador Proxy y correo electronico'],
            7: ['Soluciona problemas de servidores de impresion y archivos',
                'Administrador Debian'],
            8: ['Instalacion y mantenimiento de redes LAN', 'Redes LAN'],
            9: ['Instalacion y mantenimiento de redes WAN', 'Comunicaciones'],
            10: ['Mantenimiento del Sistema Comercial',
                'Desarrollo del Sistema Comercial'],
            11: ['Mantenimiento del Sistema RRHH',
                'Desarrollo del Sistema RRHH'],
            12: ['Mantenimiento del Sistema Reclamos',
                'Desarrollo del Sistema Reclamos'],
            13: ['Resolucion consultas sobre el sistema de la empresa',
                'Soporte funcional de Sistemas'],
            14: ['Realiza el ABM de Grupos de Resolucion', 'Gerencia']}
    clasificaciones = {u'MesaDeAyuda': [],#ver esto FIXME
            u'Unidades de Soporte': ['Problemas de SO',
            u'Configuracion de clientes de red'],
            u'Servicio Tecnico': ['Problemas de Hardware',
            u'Instalar nuevos componentes'],
            u'DBA': ['Modificacion de esquema de BD',
                'La BD procede mal', 'Defenicion de nuevos triggers'],
            u'Administrador SUSE Linux': ['Problemas con el servidor web',
                'Problema con el servidor de aplicaciones',
                'Base de Datos no responde'],
            u'Administrador Proxy y correo electronico': [
            u'Problemas con el correo electronico',
            u'Problemas con el Proxy'],
            u'Administrador Debian': ['Problemas con Servidores de archivo',
                'Problemas con servidores de impresion'],
            u'Redes LAN': ['Intalacion de Redes LAN',
            'Mantenimiento de cableado LAN', 'Equipamiento para red LAN'],
            u'Comunicaciones': ['Intalacion de Redes WAN',
            'Mantenimiento de cableado WAN', 'Equipamiento para red WAN'],
            u'Desarrollo del Sistema Comercial':
            ['Mantenimiento de Sistema Comercial'],
            u'Desarrollo del Sistema RRHH': ['Mantenimiento de Sistema RRHH'],
            u'Desarrollo del Sistema Reclamos':
            ['Mantenimiento de Sistema Reclamos'],
            u'Soporte funcional de Sistemas': ['Consultas del funcionamiento'],
            u'Gerencia':[]}
    for key,value in grupos.iteritems():
        grupo = GrupoDeResolucion(fecha_creacion=datetime.now(),
                descripcion=grupos[key][0],
                nombre=grupos[key][1])
        #Generamos los usuarios del grupo:
        for x in range(0,3):
            empleado = empleados[randrange(1, len(empleados))]
            usuario = Usuario(u_legajo='u'+str(empleado.legajo),
                    password=str(randrange(1, 1000000)),
                    descripcion_cargo='',
                    empleado=empleado.id,
                    grupo_de_resolucion=grupo.id)
            empleado.set(usuario=usuario.id)
            empleados.remove(empleado)
        for x in clasificaciones[grupo.nombre]:
            clasificacion = Clasificacion(nombre=x,
                    descripcion='Completar estos campos como se debe',
                    historial_de_clasificacion=None)
            clasificacion.addGrupoDeResolucion(grupo)
    # Comenzamos con los estados del ticket:
    # Falta poner la descripcion (...)
    estados = ['Abierto en Mesa de Ayuda', 'Abierto derivado',
            'Solucionado a la espera OK', 'Cerrado']
    for x,estado in enumerate(estados):
        Estado(descripcion='',
                nombre=estados[x],
                historial_de_estado=None)
"""
Crear la base de datos:
nercof@debian:~/Proyectos/ghhp$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 189
Server version: 5.0.32-Debian_7etch3-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> drop database ghhp;
Query OK, 11 rows affected (0.25 sec)

mysql> create database ghhp;

"""
